﻿namespace SLClient.ServiceAPI
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Runtime.CompilerServices;
    using System.Runtime.Serialization;
    using System.Threading;
    using System.Windows;

    [DataContract(Name="ViwProfitReport", Namespace="http://www.slclient.com"), GeneratedCode("System.Runtime.Serialization", "4.0.0.0"), DebuggerStepThrough]
    public class ViwProfitReport : INotifyPropertyChanged
    {
        private decimal? BetMoneySummationField;
        private decimal? FianDianSummationField;
        private decimal? GameProfitSummationField;
        private decimal? MoneyInSummationField;
        private decimal? MoneyOutSummationField;
        private PropertyChangedEventHandler _PropertyChanged;
        private string UserAccountField;
        private Guid UserIdField;
        private string UserNickNameField;
        private int UserTypeField;

        public event PropertyChangedEventHandler PropertyChanged
        {
            add
            {
                PropertyChangedEventHandler handler2;
                PropertyChangedEventHandler propertyChanged = this._PropertyChanged;
                do
                {
                    handler2 = propertyChanged;
                    PropertyChangedEventHandler handler3 = (PropertyChangedEventHandler) Delegate.Combine(handler2, value);
                    propertyChanged = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this._PropertyChanged, handler3, handler2);
                }
                while (propertyChanged != handler2);
            }
            remove
            {
                PropertyChangedEventHandler handler2;
                PropertyChangedEventHandler propertyChanged = this._PropertyChanged;
                do
                {
                    handler2 = propertyChanged;
                    PropertyChangedEventHandler handler3 = (PropertyChangedEventHandler) Delegate.Remove(handler2, value);
                    propertyChanged = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this._PropertyChanged, handler3, handler2);
                }
                while (propertyChanged != handler2);
            }
        }

        protected void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler propertyChanged = this._PropertyChanged;
            if (propertyChanged != null)
            {
                propertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        [DataMember]
        public decimal? BetMoneySummation
        {
            get
            {
                return this.BetMoneySummationField;
            }
            set
            {
                if (!this.BetMoneySummationField.Equals(value))
                {
                    this.BetMoneySummationField = value;
                    this.RaisePropertyChanged("BetMoneySummation");
                }
            }
        }

        public Visibility CanSeeOperation { get; set; }

        [DataMember]
        public decimal? FianDianSummation
        {
            get
            {
                return this.FianDianSummationField;
            }
            set
            {
                if (!this.FianDianSummationField.Equals(value))
                {
                    this.FianDianSummationField = value;
                    this.RaisePropertyChanged("FianDianSummation");
                }
            }
        }

        [DataMember]
        public decimal? GameProfitSummation
        {
            get
            {
                return this.GameProfitSummationField;
            }
            set
            {
                if (!this.GameProfitSummationField.Equals(value))
                {
                    this.GameProfitSummationField = value;
                    this.RaisePropertyChanged("GameProfitSummation");
                }
            }
        }

        public int ID { get; set; }

        [DataMember]
        public decimal? MoneyInSummation
        {
            get
            {
                return this.MoneyInSummationField;
            }
            set
            {
                if (!this.MoneyInSummationField.Equals(value))
                {
                    this.MoneyInSummationField = value;
                    this.RaisePropertyChanged("MoneyInSummation");
                }
            }
        }

        [DataMember]
        public decimal? MoneyOutSummation
        {
            get
            {
                return this.MoneyOutSummationField;
            }
            set
            {
                if (!this.MoneyOutSummationField.Equals(value))
                {
                    this.MoneyOutSummationField = value;
                    this.RaisePropertyChanged("MoneyOutSummation");
                }
            }
        }

        public int Tag { get; set; }

        [DataMember]
        public string UserAccount
        {
            get
            {
                return this.UserAccountField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UserAccountField, value))
                {
                    this.UserAccountField = value;
                    this.RaisePropertyChanged("UserAccount");
                }
            }
        }

        [DataMember]
        public Guid UserId
        {
            get
            {
                return this.UserIdField;
            }
            set
            {
                if (!this.UserIdField.Equals(value))
                {
                    this.UserIdField = value;
                    this.RaisePropertyChanged("UserId");
                }
            }
        }

        [DataMember]
        public string UserNickName
        {
            get
            {
                return this.UserNickNameField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UserNickNameField, value))
                {
                    this.UserNickNameField = value;
                    this.RaisePropertyChanged("UserNickName");
                }
            }
        }

        [DataMember]
        public int UserType
        {
            get
            {
                return this.UserTypeField;
            }
            set
            {
                if (!this.UserTypeField.Equals(value))
                {
                    this.UserTypeField = value;
                    this.RaisePropertyChanged("UserType");
                }
            }
        }
    }
}

